home *** CD-ROM | disk | FTP | other *** search
- #pragma once
-
- /*
- * (C) 1992 SixxHeads Software
- * (C) 1992 Berkeley Systems
- *
- * This code is freely distributable, but credit must be given in any
- * derivative work.
- *
- * This is private information for the back end of
- * the FinderMenu extension. Clients should
- * use the interfaces provided in FinderMenuInterface.h
- *
- * <Revision History>
- * 04/28/92 smz Created.
- */
-
- #include "Utils.h"
-
- typedef enum {
- eInitFinderMenu,
- eAppendMenu,
- eDeleteMenus,
- eRemoveEntry,
- eClientFinished,
- eFreshMenuBar,
- eRollBeachball
- } FinderMenuDispatchCode;
-
- typedef long (*FMDispatchProc)(short selector, OSType creator, ...);
-
- /*
- * private globals
- */
- extern FMDispatchProc theDispatchProc;
- extern OSType theCreatorID;
-
- /*
- * These functions are declared as C in the interfaces, but actually overridden
- * by these macros.
- */
- #define FMAppend(hm, bf) (*theDispatchProc)(eAppendMenu, theCreatorID, hm, bf)
- #define FMDeleteMenus() (*theDispatchProc)(eDeleteMenus, theCreatorID)
- #define FMRemove() (*theDispatchProc)(eRemoveEntry, theCreatorID)
- #define FMGetHit() (MenuHitHandle) (*theDispatchProc)(eGetMenuHitInfo, theCreatorID)
- #define FMDisposeHitList(hh) (*theDispatchProc)(eDisposeHitInfo, theCreatorID, hh)
- #define FMFreshMenuBar() (*theDispatchProc)(eFreshMenuBar, theCreatorID)
- #define FMRollBeachball() (*theDispatchProc)(eRollBeachball, theCreatorID)
- #define FMFinishedProcessing() (*theDispatchProc)(eClientFinished, theCreatorID)